Чек-лист самопроверки
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Чек-лист самопроверки
- Выбрана ли РСУБД с учётом лицензирования, поддержки ОС, требований к ресурсам и экосистемы?
- Создан ли отдельный непривилегированный пользователь ОС для запуска службы СУБД?
- Запрещён ли запуск СУБД от имени root / LocalSystem?
- Открыт ли в брандмауэре только необходимый порт, ограниченный по IP-адресам источника?
- Выделена ли отдельная подсеть или VLAN для трафика репликации и администрирования?
- Инициализирован ли кластер PostgreSQL явно через
initdbс указанием кодировки и локали? - Создана ли база данных Oracle через DBCA или вручную, а не только установлено ПО?
- Используется ли именованный экземпляр SQL Server в production?
- Выполнен ли скрипт
mysql_secure_installationсразу после установки MySQL? - Указаны ли в
postgresql.confпараметрыlisten_addressesиportявно? - Настроен ли
pg_hba.confс конкретными правилами вместоtrustилиmd5по умолчанию? - Включён ли в Oracle режим
ARCHIVELOG? - Выбрана ли в SQL Server модель восстановления
FULLдля возможности PITR? - Включены ли в MySQL бинарные логи (
log_bin = ON) и установленbinlog_format = ROW? - Настроены ли параметры памяти (
shared_buffers,innodb_buffer_pool_size,SGA_TARGET,max server memory) с учётом доступной ОЗУ и других процессов? - Расположены ли журналы транзакций (WAL, Redo, Transaction Log, Binary Log) на отдельном физическом диске от файлов данных?
- Используются ли SSD (предпочтительно NVMe) для файлов данных и журналов?
- Отключена ли антивирусная проверка в реальном времени для каталогов данных и логов СУБД?
- Используется ли файловая система XFS или ext4 с опцией
noatimeна Linux? - Применяется ли терминальный клиент (
psql,sqlplus,sqlcmd,mysql) для администрирования? - Настроено ли локальное подключение без использования пароля только для начальной настройки?
- Заменены ли локальные методы аутентификации (
peer,auth_socket) на контролируемые после создания сервисных аккаунтов? - Разрешён ли удалённый доступ только с конкретных IP-адресов приложений и административных хостов?
- Используется ли современный метод хеширования пароля (
scram-sha-256,caching_sha2_password)? - Создана ли отдельная база данных для каждого приложения?
- Создан ли отдельный пользователь/роль для каждого приложения?
- Назначены ли приложению только необходимые привилегии (
SELECT,INSERT,UPDATE,DELETE) безDROP,ALTER,CREATE USER? - Используются ли роли для группировки привилегий вместо назначения прав напрямую пользователям?
- Запрещено ли использование учётных записей
postgres,sa,root,SYSв коде приложения? - Настроено ли шифрование соединений через SSL/TLS?
- Включено ли аудирование критических операций (создание/удаление объектов, изменение привилегий)?
- Настраивается ли аудит на внешнее хранилище, недоступное для локального администратора?
- Мониторятся ли активные сеансы через системные представления (
pg_stat_activity,v$session,sys.dm_exec_sessions,information_schema.processlist)? - Анализируются ли блокировки и ожидания для выявления «висящих» транзакций?
- Проверяются ли журналы ошибок СУБД ежедневно или через систему мониторинга?
- Выполняется ли регулярное обновление статистики (
ANALYZE,DBMS_STATS,UPDATE STATISTICS)? - Настроено ли автоматическое обслуживание (автовакуум, планы обслуживания, события)?
- Существует ли стратегия резервного копирования, соответствующая требованиям RPO и RTO?
- Выполняются ли полные бэкапы регулярно (ежедневно/еженедельно)?
- Используются ли инкрементальные или дифференциальные бэкапы для снижения объёма и времени?
- Автоматизировано ли выполнение бэкапов через
cron, Task Scheduler или встроенные средства? - Логируются ли результаты выполнения бэкапов (успех/ошибка, объём, время)?
- Проверяется ли целостность резервных копий (например, через
RESTORE VERIFYONLY)? - Хранятся ли резервные копии вне основного сервера (сетевое хранилище, облако)?
- Реализован ли механизм Point-in-Time Recovery (PITR) через архивирование журналов?
- Настроена ли физическая репликация для отказоустойчивости?
- Используются ли реплики для масштабирования запросов на чтение?
- Настроен ли мониторинг задержки репликации (
replication lag)? - Протестирован ли сценарий аварийного переключения (failover) на реплику?
- Профилируется ли производительность системы под нагрузкой, близкой к production, с использованием
EXPLAIN, AWR, DMVs или аналогов?